package cc.higou.core.pojo;

import com.fasterxml.jackson.annotation.JsonIgnore;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

/**
 * 说明：
 * 购物车相关信息的实体类
 *
 * @author:dongxing
 * @time:--
 */

public class Cart implements Serializable {

    /**
     * // 购买项的集合
     */
    private List<Item> items = new ArrayList<>();

    public List<Item> getItems() {
        return items;
    }

    public void setItems(List<Item> items) {
        this.items = items;
    }

    /**
     * 添加新的购买项到cart list《item》中
     *
     * @param item
     */
    public void addItem(Item item) {
        for (Item item2 : items) {
            if (item2.getSkuId().equals(item.getSkuId())) {
                item2.setAmount(item2.getAmount() + item.getAmount());
            }
        }
        items.add(item);
    }

    // 合计等相关信息

    /**
     * 获得商品总数量
     *
     * @return
     */
    //不转成json
    @JsonIgnore
    public Integer getProductAmount() {
        Integer productAmount = 0;
        List<Item> items = this.items;
        for (Item item : items) {
            productAmount = productAmount + item.getAmount();
        }
        return productAmount;
    }


    /**
     * 获得商品总金额
     *
     * @return
     */
    @JsonIgnore
    public Float getProductPrice() {
        Float result = 0f;

        List<Item> items = this.getItems();
        for (Item item : items) {
            result = result + Float.parseFloat(item.getSku().get("price") + "");
        }
        return result;
    }


    /**
     * 计算运费
     *
     * @return
     */
    @JsonIgnore
    public Float getFee() {
        Float fee = 0f;
        // 如果商品总金额小于79就收个10块钱，否则就不要钱
        if (this.getProductPrice() < 79) {
            fee = 10f;
        }
        return fee;
    }


    /**
     * 计算总金额
     *
     * @return
     */
    @JsonIgnore
    public Float getTotalPrice() {
        return this.getProductPrice() + this.getFee();
    }

}
